-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(devboard): Add support for Seeed Studio XIAO SAMD21 #27
Conversation
This adds initial support for Seed Studio's XIAO development board.
…rd is incompatible. This defers error handling of incompatible hardware to the programmer, instead of keeping it self-contained.
This will exit `CRSFforArduino::begin()` if a SERCOM instance was not found on the target devboard.
These will pop up in the Serial Monitor, if something fails to initialise in `CRSFforArduino::begin()`.
When `CRSFforArduino::begin()` fails, it is up to the programmer to decide how these errors are best handled.
Same as 5743a41. When `CRSFforArduino::begin()` fails, it is up to the programmer to decide how these errors are best handled.
@grey1808, I have a favour to ask of you: What I have done here is... hopefully (all fingers & toes crossed) this adds full support for your development board & it may resolve the issues you raised in #26 . Also, at the start of writing this PR, I noticed that your XIAO was erroneously being seen as an Arduino Zero at compile time. Hence why you weren't seeing the errors that I was expecting. 🙃 |
…le development boards (#28) The Compatibility Table leverages the USB Vendor ID & Product ID to determine whether-or-not a development board is compatible with CRSF for Arduino.
This adds initial support for Seed Studio's XIAO development board.
…rd is incompatible. This defers error handling of incompatible hardware to the programmer, instead of keeping it self-contained.
This will exit `CRSFforArduino::begin()` if a SERCOM instance was not found on the target devboard.
These will pop up in the Serial Monitor, if something fails to initialise in `CRSFforArduino::begin()`.
Stale issues & pull requests are closed after 30 days from being marked as stale
These are exempt from being automatically closed
… new feature request form
This adds initial support for Seed Studio's XIAO development board.
…rd is incompatible. This defers error handling of incompatible hardware to the programmer, instead of keeping it self-contained.
These will pop up in the Serial Monitor, if something fails to initialise in `CRSFforArduino::begin()`.
When `CRSFforArduino::begin()` fails, it is up to the programmer to decide how these errors are best handled.
Same as 5743a41. When `CRSFforArduino::begin()` fails, it is up to the programmer to decide how these errors are best handled.
This adds initial support for Seed Studio's XIAO development board.
…/CRSFforArduino into Testing-SeeedXIAO-Support
…the Bug Report form
Alright, I have made my decision. Anyone that is still having issues with this development board, they are very welcome to submit a Bug Report from here on out. |
CRSF for Arduino is fully compatible with the Seeed Studio XIAO SAMD21 development board. PlatformIO users can select this board in the `project.ini` file as `seeed_xiao`. Arduino IDE users can select this board from the Boards Manager (provided support for this has been added to the Arduino IDE ahead of time).
CRSF for Arduino is fully compatible with the Seeed Studio XIAO SAMD21 development board. PlatformIO users can select this board in the `project.ini` file as `seeed_xiao`. Arduino IDE users can select this board from the Boards Manager (provided support for this has been added to the Arduino IDE ahead of time).
Overview
This Pull Request adds initial support for Seeed Studio's XIAO SAMD21 development board.
Pinouts
CRSF for Arduino's UART port is SERCOM4:
Wiring
Testing
// #define CRSF_DEBUG
insrc\lib\CRSFforArduino\CRSFforArduino.h
to enable message output to the Serial Monitor.channels.ino
in theexamples\channels
directory.main_rc.cpp
in thesrc\src
directory.Upon startup, you should see this message:
[CRSF for Arduino | INFO] Devboard Name: Seeed Studio Xiao SAMD21
in the display window.If all is well, the initial startup will conclude with:
Followed by a short delay.
After that, you should be able to see your channel data in the Serial Monitor in the following format:
RC Channels <A: 1500, E: 1500, T: 1500, R: 1500, Aux1: 2000, Aux2: 1500, Aux3: 1500, Aux4: 1500>
If you are using ExpressLRS,
Aux1
is your "Arming Channel" &2000
represents "Armed" &1000
represents "Disarmed". All other channel values are dependent on how you have configured your transmitter's packet settings in the ELRS Lua Script.Errors
I have re-factored the way errors are handled during start-up. Every message is prefixed with
[CRSF for Arduino | TYPE]
followed by the error message.TYPE
here refers to what type of message you are seeing. In the case of error messages, the prefix is[CRSF for Arduino | ERROR]
with the appropriate error message.The following table contains the errors you will encounter, if CRSF for Arduino is not initialising properly...
Devboard is not compatible with CRSF for Arduino.
SERCOM instance not found.
DMA allocation failed with status:
1
indicates no empty DMA channel was found.DMA descriptor allocation failed.
NULL
.DMA start failed with status:
2
means the DMA tried to start on a channel that wasn't allocated. Status code3
means that a bad transfer size was specified. Status code6
means the resource is busy.